package cn.cdnsu.gift.util;

import cn.cdnsu.org.domain.Employee;
import cn.cdnsu.org.domain.Shop;
import org.apache.commons.lang3.StringUtils;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

/**
 * 登陆上下文
 * 登陆成功，设置登陆信息
 * 获取当前登录人信息
 */
public class LoginContext {
    public static Map<String,Object> loginMap=new HashMap<>();

    /*
    登陆成功之后，将登陆信息 写入redis/map等中
     */
    public static void setLoginUser(){

    }

    /*
    获取当前登录人信息
     */
    public static Employee getLoginUser(HttpServletRequest request){
        //1.获取前端传来的token
        String token = request.getHeader("tokenYa");
        //2.如果token是空，项目中应该返回错误信息，其实压根没有token也不可能操作，开发阶段，写死为了进行开发测试
        if (StringUtils.isBlank(token)){
            Employee employee=new Employee();
            employee.setId(340L);
            employee.setUsername("admin");
            employee.setRealName("张三");
            Shop shop=new Shop();
            shop.setId(48L);
            shop.setName("姚桑成都温江官方旗舰店");
            employee.setShop(shop);
            return employee;
        }
        //3.如果token不为空，则从redis/map中获取登陆信息
        Object obj= loginMap.get(token);
        //4.如果登陆信息为空，在项目中应该返回错误信息，开发阶段，写死
        if (Objects.isNull(obj)){
            Employee employee=new Employee();
            employee.setId(340L);
            employee.setUsername("admin");
            employee.setRealName("张三");
            Shop shop=new Shop();
            shop.setId(48L);
            shop.setName("姚桑成都温江官方旗舰店");
            employee.setShop(shop);
            return employee;
        }
        //5.如果登陆信息不为空，则直接返回登陆信息
        return (Employee) obj;
    }
}
